home *** CD-ROM | disk | FTP | other *** search
- TCHANNEL STRUC
- ; general switches :
- enabled DB ? ; flag if =0 then nothing to mix at the moment
- channeltyp DB ? ; 0=off,1=left,2=right,3,4=adlib ... if 0,3,4 -> everything ignored !
- ; current Instrument :
- InstrSEG DW ? ; DOS segment of current instrument data
- SampleSEG DW ? ; DOS segment of current sample data
- InstrNo DB ? ; number of instrument is currently playing
- Note DB ? ; we don't need it really for playing, but let's store it anyway
- ; copy of sampledata (maybe it differs a bit):
- SampleVol DB ? ; current sample volume
- sLoopflag DB ? ; flag if we have to loop sample
- sSmpstart DW ? ; start offset of sample
- sLoopstart DW ? ; loop start of current sample =0ffffh if no loop
- sLoopend DW ? ; loop end/normal end of current sample
- sCurPos DD ? ; fixed point value for current position in sample
- sStep DD ? ; fixed point value of frequency step (distance of one step
- ; depends on period we play currently)
- sPeriod DW ? ; st3 period ... you know these amiga values (look at tech.doc of ST3)
- ; period does no influence playing a sample direct, but it's for sliding etc.
- lower_border DW ? ; B-7 or B-5 period for current instrument to check limits
- upper_border DW ? ; C-0 or C-3 period for current instrument to check limits
- ; effect info :
- command DW ? ; 2 times effectnumber (for using a jmptable)
- cmd2nd DW ? ; -> 2nd command part - for multiple effects
- parameter DB ? ; just the command parameters
- ; extra effect data :
- continueEf DB ? ; Flag if we should continue effect - vibrato,tremolo
- VibtabOfs DW ? ; yo for each channel its own choise (default = OFS sinuswave)
- TrmtabOfs DW ? ; = Offset of wavetable for tremolo
- tablepos DB ? ; <- we reset this if a effect starts uses such a table
- VibPara DB ? ; <- for dual command Vib + Vol
- PortPara DB ? ; <- for dual command Port + Vol
- OldPeriod DW ? ; save that value for some effects
- Oldvolume DB ? ; save that value for tremolo
- WantedPeri DW ? ; <- period to slide to with Portamento
- ArpegPos DB ? ; which of thoses 3 notes we currently play ...
- note1 DB ? ; \
- note2 DB ? ; - +note - 3 notes we do arpeggio between
- Step0 DD ? ; \
- Step1 DD ? ; |- the 3 step values we switch between in arpeggio effect (0 is start value <- we have to refesh after arpeggio)
- Step2 DD ? ; /
- cTick DB ? ; - ticks left to retrigg note
- savNote DB ? ; \
- savInst DB ? ; | - new values for notedelay ...
- SavVol DB ? ; |
- ndTick DB ? ; / <- also used for Notecut (ticks left to cut)
- TCHANNEL ENDS
-
- TINSTRUMENT STRUC
- TYP DB ? ; if <>1 forget the rest it's a wrong instrument typ
- ; only read the following things if typ was =1
- ; or you will get 'amazing' results ;)
- DOSname DB 12 DUP (?)
- notused1 DB ?
- memseg DW ? ; segment of sampledata
- slength DW ? ; length of sample <= 64KB
- HI_length DW ? ; <- not used !
- loopbeg DW ? ; loop begin <= 64KB
- HI_loopbeg DW ? ; <- not used !
- loopend DW ? ; loop end <= 64KB
- HI_loopend DW ? ; <- not used !
- vol DB ? ; default instrument volume
- notused2 DB ?
- packinfo DB ? ; =0 or we can't play it !
- flags DB ? ; bit 0 = sample loops
- ; all other bits not supported ...
- c2speed DW ? ; frequency at middle C (actually C-4)
- HI_c2speed DW ? ; <- not used !
- notused3 DB 4 DUP (?)
- GUS_addr DW ? ; <- not used !
- SB_Flags DW ? ; dounno ... not used yet
- SB_last DD ? ; not used yet (will be good for EMS play ?)
- IName DB 28 DUP (?)
- SCRS_ID DB 4 DUP (?)
- TINSTRUMENT ENDS